from machine import Pin, Timer
import utime

class Led:
    '''
    LED指标灯状态库
    ledgpio  -- LED引脚（默认 GPIO2）
    onstatus -- 指示灯默认：亮 的电位值 1 - 高（默认） / 0 - 低
    '''
    def __init__(self, ledgpio=2, onstatus=0):
        self.LED = Pin(ledgpio, Pin.OUT)
        if onstatus==0:
            self.led_on  = 0
            self.led_off = 1
        else:
            self.led_on  = 1
            self.led_off = 0
        self.LED.value(self.led_off)

    def On(self):
        self.LED.value(1)  # light on
        
    def Off(self):
        self.LED.value(0)  # light off

    # 慢闪
    # cs -- 开关几次（默认3次）
    # is_on -- 结束后灯保持状态
    def mang_shang(self, is_on = False, cs = 3):
        self.LED.value(self.led_off)
        i = 0
        while i <= cs:
            self.LED.value(self.led_on)
            utime.sleep_ms(200)
            self.LED.value(self.led_off)
            utime.sleep_ms(200)
            i += 1
        if is_on:
            self.LED.value(self.led_on)
        else:
            self.LED.value(self.led_off)

    # 快闪
    # cs -- 开关几次（默认5次）
    # is_on -- 结束后灯保持状态
    def kuai_shang(self, is_on = False, cs = 5):
        self.LED.value(self.led_off)
        i = 0
        while i <= cs:
            self.LED.value(self.led_on)
            utime.sleep_ms(100)
            self.LED.value(self.led_off)
            utime.sleep_ms(100)
            i += 1
        if is_on:
            self.LED.value(self.led_on)
        else:
            self.LED.value(self.led_off)
 
